/**
 * 计算百分比
 * @param {number} part - 部分值
 * @param {number} total - 总值
 * @param {number} [decimalPlaces=2] - 保留的小数位数，默认2位
 * @param {boolean} [withPercentSign=true] - 是否带百分号，默认true
 * @returns {number|string} 计算后的百分比结果
 */
export function calculatePercentage(part, total, decimalPlaces = 2, withPercentSign = true) {
  // 处理总值为0的情况，避免除以零错误
  if (total === 0) {
    return withPercentSign ? "0%" : 0;
  }

  // 计算百分比（部分值/总值*100）
  const percentage = (part / total) * 100;

  // 四舍五入到指定的小数位数
  const rounded = Number(percentage.toFixed(decimalPlaces));

  // 根据参数决定是否带百分号
  return withPercentSign ? `${rounded}%` : rounded;
}

/**
 * 从数组中随机选择一个元素
 * @param {Array} array - 源数组
 * @returns {*} 随机选择的元素
 */
export const getRandomElement = (array) => {
  // 校验输入参数
  if (!Array.isArray(array) || array.length === 0) {
    return undefined;
  }

  // 生成随机索引并返回元素
  const randomIndex = Math.floor(Math.random() * array.length);
  return array[randomIndex];
};
